package day7;

import java.util.*;

//a.双色球规则：双色球每注投注号码由6个红色球号码和1个蓝色球号码组成。
//红色球号码从1—33中选择；蓝色球号码从1—16中选择；请随机生成一注双色
//球号码。（要求同色号码不重复）
//提示:可以使用set集合存储红号
//自己手动输入自己投注的双色球号码   与随机产生的双色球比较
//获奖规则如下
//0-2个红色球+蓝色球  5元          六等奖
//4个红色球          10元         五等奖
//3个红色球+蓝色球    10元         五等奖
//5个红色球          200元        四等奖
//4个红色球+蓝色球    200元        四等奖
//5个红色球+蓝色球    30000元      三等级
//6个红色球          150000元     二等级
//6个红色球+蓝色球    5000000元    一等奖
public class Ball {
    //机器生成的红号 set
    static Set<Integer> red=new TreeSet<>();//有序的 可以堆String 数字自然排序 其他对象类型不可以
    //机器生成的蓝号
    static Integer blue;
    //用户的红号
    static Set<Integer> userRed=new TreeSet<>();
    //用户的蓝号
    static Integer userBlue;
    //相同红号数量
    static int redCount;
    //相同蓝号数量
    static int blueCount;
    public static void main(String[] args) throws InterruptedException {
        Set set=new HashSet();//HashMap()
        set.add(null); //put()
        Map map=new HashMap();
        //16 0.75 8 64 6...
        map.put(null,null);

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入你6个红号(1-33)");
        while(userRed.size()<6){
            int n=sc.nextInt();
            if(n<1 || n>33) continue;
            userRed.add(n);
        }
        System.out.println("请输入你的蓝号(1-16)");
        while(true){
            int n=sc.nextInt();
            if(n<1 || n>16) continue;
            userBlue=n;
            break;
        }
        System.out.println("您投注的红号:"+userRed+",蓝号:"+userBlue);

        System.out.println("系统开始生成双色球号码,请等待...3S");
        for(int i=0;i<3;i++) {
            Thread.sleep(1000); //睡眠1S
            System.out.println("请稍等.."+(3-i)+"S");
        }
        //给红球随机赋值
        Random r=new Random();
        while(red.size()<6){
            red.add(r.nextInt(33)+1);
        }
        blue=r.nextInt(16)+1;
        System.out.println("双色球号码生成成功:");
        System.out.println("红号:"+red+",蓝号:"+blue);
        //结果1:统计 红球和蓝球 相同的个数
        stats();
        //结果2:计算金额
        result();
    }
    public static void stats() throws InterruptedException {
        //交集
        System.out.println("统计结果...");
        Thread.sleep(1000);
        Set<Integer> newSet=new TreeSet<>(userRed);
        newSet.retainAll(red);//统计相同的部分
        redCount=newSet.size();
        if(blue==userBlue) blueCount++;
        System.out.println("您中了"+redCount+"红号,"+blueCount+"蓝号");
    }
    public static void result(){
       if(redCount<=2&&blueCount==1) System.out.println("六等奖,获取了5元");
       else if(redCount==4&&blueCount==0 || redCount==3&&blueCount==1) System.out.println("五等奖,获取了10元");
       else if(redCount==5&&blueCount==0 || redCount==4&&blueCount==1) System.out.println("四等奖,获取了200元");
       else if(redCount==5&&blueCount==1) System.out.println("三等奖,获取了3000元");
       else if(redCount==6&&blueCount==0) System.out.println("二等奖,获取了150000元");
       else if(redCount==6&&blueCount==1) System.out.println("一等奖,获取了5000000元");
       else System.out.println("很遗憾 没有中奖");
    }
}
